This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Computer systems may be linked together to form a computer network such as a Local-Area Network (LAN) or a Wide-Area Network (WAN), for example. Computer networks are generally arranged having a particular “topology” which is used to characterize the geometric arrangement of the computer network. Local-Area Networks may be arranged in accordance with a bus topology, a ring topology, a star topology or a tree topology, for example. Computer networks may also be classified by architecture (e.g., peer-to-peer or client/server) and may be further characterized by a protocol that defines a common set of rules and signals that computers on the network use to communicate.
Each network generally includes one or more servers that are configured to manage and allocate network resources. File servers, print servers, network servers and database servers, for example, are generally dedicated to performing pre-defined tasks for each of the computer systems on the network. While computer networks and servers provide increased flexibility and accessibility, it is often desirable to link a number of computer networks together.
Generally, advanced interconnect technology, such as Hewlett Packard ServerNet interconnect technology, provides a mechanism for grouping a number of servers and associated computer networks together to provide an interconnected system of computer networks. Generally, ServerNet technology provides a fast, high-bandwidth, low-latency, highly scalable architecture to enable the interconnection and use of multiple servers having multiple computer system connections and resources. As described further below, switching fabrics, which may include devices such as routers or switches, are generally implemented to transfer data packets through a network. As will be appreciated, data packets generally refer to separately routable portions of a message. If the message is sufficiently short, the entire message may be included in a single data packet. A router generally provides a gateway between two or more networks. Accordingly, transferring data packets from a computer system on one network to a computer system on another network may be achieved through a router.
A router provides a mechanism to allow multiple output ports to be shared by multiple input ports. Typically, router ports are bi-directional and full-duplex. Consequently, they can behave both as an input port and as an output port at the same time depending on the direction of packet flow. Although a router port is often implemented with distinct circuitry to handle incoming and outgoing packets, some circuitry may be shared between the packet sending and receiving flow logic. As used herein the term “input port” refers to a port that receives an incoming packet, and the term “output port” refers to a port that sends an outgoing packet. It should be noted however that concurrent packet traffic on the router ports will often cause a particular port to simultaneously behave as an input port (with respect to packets that are received at that port) and as an output port (with respect to packets that are sent by that port). The router selects an input port to grant access to a particular output port in a way that insures that only one input is selected for routing at a particular time. In cases where two or more input ports have packets available to transmit on a particular output port, the router is generally responsible for selecting the order in which the packets are transmitted on a particular output port. As will be appreciated, multiple data packets may flow through a router simultaneously, using a crossbar arrangement, for example, with no more than one data packet being routed to any one output port at a time. Current systems implement an arbitration scheme to prioritize the transmission of packets through the router. For instance, an arbitration algorithm may be provided that selects between contending input ports in a round-robin fashion. Regardless of the mechanism used, designers are often challenged to design networked systems that arbitrate fairly in transmitting data packets.